﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace QLKHACHHANG.DanhMucForm
{
    public partial class frmBoPhan : DevExpress.XtraEditors.XtraForm
    {
        frmStaffConfig rootform;
        bool isSingle;
        public frmBoPhan(frmStaffConfig root)
        {
            InitializeComponent();
            rootform = root;
            isSingle = false;
        }
       public frmBoPhan()
        {
            InitializeComponent();
            isSingle = true;
        }

       private void frmBoPhan_Load(object sender, EventArgs e)
       {
           
           try
           {
               // TODO: This line of code loads data into the 'ds_Bophan.tbl_BoPhan' table. You can move, or remove it, as needed.          
               this.tbl_BoPhanTableAdapter.Connection.ConnectionString = SetConfig.getAppSetting("ConnectionString");
               this.tbl_BoPhanTableAdapter.Fill(this.ds_Bophan.tbl_BoPhan);
               gvBophan.FocusedRowHandle = -999997;
           }
           catch (Exception ex)
           {
               MessageBox.Show("Vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
           }


       }

       private void frmBoPhan_FormClosing(object sender, FormClosingEventArgs e)
       {
           if (MessageBox.Show("Bạn có muốn thoát khỏi màn hình " + this.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
           {
               if (!isSingle) rootform.UpdateBophan();
           }
           else
           {
               e.Cancel = true;
           }
       }
       private void ResetForm()
       {
           btThem.Text = "Lưu";
           txtMabophan.Properties.ReadOnly = false;
           btXoa.Enabled = false;
           btSua.Enabled = false;
           txtMabophan.Focus();
           txtMabophan.Text = "";
           txtTenbophan.Text = "";
           txtGhichu.Text = "";
           gvBophan.FocusedRowHandle = -999997;
       }

       private void btThem_Click(object sender, EventArgs e)
       {
           if (btThem.Text == "Thêm")
           {
               // reset
               ResetForm();
           }
           else
           {
               //luu 
               if (txtMabophan.Text.Equals("") || txtTenbophan.Text.Equals(""))
               {
                   MessageBox.Show("Vui lòng xem lại thông tin nhập vào !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                   return;
               }
               else
               {
                   try
                   {
                       DataRow row = ds_Bophan.tbl_BoPhan.NewRow();
                       row["Mabophan"] = txtMabophan.Text;
                       row["Tenbophan"] = txtTenbophan.Text;
                       row["Ghichu"] = txtGhichu.Text;
                       ds_Bophan.tbl_BoPhan.Rows.Add(row);
                       this.tbl_BoPhanTableAdapter.Update(this.ds_Bophan.tbl_BoPhan);
                   }
                   catch (Exception ex)
                   {
                       if (ex.Message.Contains("constrained to be unique"))
                       {
                           MessageBox.Show("Không lưu được do thông tin đã bị trùng, xin vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                       }
                       else MessageBox.Show("Lưu thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                       return;
                   }

               }
               ResetForm();
           }
       }

       private void btXoa_Click(object sender, EventArgs e)
       {
           try
           {
               if (MessageBox.Show("Bạn có muốn xóa bộ phận hàng có mã: " + txtMabophan.Text + " ?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
               {
                   txtMabophan .Text = "";
                   txtTenbophan.Text = "";
                   txtGhichu.Text = "";
                   gvBophan.DeleteSelectedRows();
                   this.tbl_BoPhanTableAdapter.Update(this.ds_Bophan.tbl_BoPhan);
               }
           }
           catch (Exception ex)
           {
               if (ex.Message.Contains("conflicted"))
               {
                   MessageBox.Show("Không xóa đơợc do thông tin được sử dụng bởi chức năng khác, vui lòng kiểm tra lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
               }
               else MessageBox.Show("Xoá thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
               this.tbl_BoPhanTableAdapter.Fill(this.ds_Bophan.tbl_BoPhan);
           }
       }

       private void btSua_Click(object sender, EventArgs e)
       {
           try
            {
                gvBophan.GetFocusedDataRow()["Tenbophan"] = txtTenbophan.Text;
                gvBophan.GetFocusedDataRow()["Ghichu"] = txtGhichu.Text;
               this.tbl_BoPhanTableAdapter.Update(this.ds_Bophan.tbl_BoPhan);
               
            }
            catch (Exception ex)
            {
                MessageBox.Show("Sửa thất bại, vui lòng kiểm tra lại ! \n\n (" + ex.Message + ")", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void gvBophan_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            
            if (gvBophan.FocusedRowHandle >= 0)
            {
                txtMabophan.Text = gvBophan.GetFocusedDataRow()["Mabophan"].ToString();
                txtTenbophan.Text = gvBophan.GetFocusedDataRow()["Tenbophan"].ToString();
                txtGhichu.Text = gvBophan.GetFocusedDataRow()["Ghichu"].ToString();
                txtMabophan.Properties.ReadOnly = true;
                btSua.Enabled = true;
                btXoa.Enabled = true;
                btThem.Text = "Thêm";
            }
            else
            {
                ResetForm();
            }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            Close();  
        }

        private void btRefresh_Click(object sender, EventArgs e)
        {
            this.tbl_BoPhanTableAdapter.Fill(this.ds_Bophan.tbl_BoPhan);
        }
       
        //
        //
        //
        //

    }
}